Industrial controllers are specialized computer systems used for the control of industrial processes or machinery, for example, in a factory environment. Generally, an industrial controller executes a stored control program that reads inputs from a variety of sensors associated with the controlled process or machine and, sensing the conditions of the process or machine, and based on those inputs and a stored control program, calculates a set of outputs used to control actuators controlling the process or machine. Special control languages, such as “relay ladder logic” are normally used to facilitate programming of the device. Under the direction of the stored program, a processor of the industrial controller periodically examines the state of input devices and updates the state of output devices. In order to ensure predictable control of a machine or process, the control program must be highly reliable and deterministic, that is, executing at well-defined time periods.
Industrial controllers differ from conventional computers in a number of ways. Physically, they are constructed to be substantially more robust against shock and damage and to better resist external contaminants and extreme environmental conditions than conventional computers. The processors and operating systems are optimized for real-time control and are programmed with languages designed to permit rapid development of control programs tailored to a constantly varying set of machine control or process control applications.
Generally, industrial controllers have a highly modular architecture, for example, that allows different numbers and types of input and output modules to be used to connect the controller to the process or machinery to be controlled. This modularity is facilitated through the use of special “control networks” suitable for highly reliable and available real-time communication. Such control networks (for example, EtherNet/IP, DeviceNet and ControlNet) differ from standard communication networks by guaranteeing maximum communication delays by pre-scheduling the communication capacity of the network, and/or providing seamless redundant communication capabilities for high-availability.
As part of their enhanced modularity, industrial controllers may employ I/O modules or devices dedicated to a particular type of electrical signal and function, for example, detecting input AC or DC signals or controlling output AC or DC signals. Each of these I/O modules or devices may have a connector system allowing them to be installed in different combinations in a housing or rack along with other selected I/O modules or devices to match the demands of the particular application. Multiple or individual I/O modules or devices may be located at convenient control points near the controlled process or machine to communicate with a central industrial controller via the control network.
Control networks may employ “connected messaging” in which the bandwidth of the network and buffer space is pre-allocated to dedicated “connections” to detect lost or unpredictably delayed data control message transfers or to guarantee client/server transaction integrity as in common Ethernet usage. An example of connected messaging is embodied within Common Industrial Protocol (CP), which is a media independent industrial protocol for industrial automation applications supported by the Open DeviceNet Vendors Association (ODVA). CIP is described in “The Common Industrial Protocol (CIP) and the Family of CIP Networks,” Copyright 2006, Open DeviceNet Vendor Association, Inc., which document is incorporated herein by reference in its entirety.
CIP encompasses a comprehensive suite of messages and services for the collection of manufacturing automation applications, including control, safety, synchronization, motion, configuration and other information. Application extensions to CIP include: CIP Safety, providing a communication between nodes such as safety I/O blocks, safety interlock switches, safety light curtains and safety PLC's in safety applications up to Safety Integrity Level (SIL) 3 according to IEC 61508 standards; CIP Motion, allowing integration of field devices and motion drives on the same network thereby eliminating the need for a separate motion optimized network; and CIP Sync, a time synchronization extension to CIP based on the recent IEEE-1588 standard—Precision Clock Synchronization Protocol for Networked Measurement and Control Systems—providing increased control coordination for sequencing demanding events recording, distributed motion control and other distributed applications. CIP maximizes compatibility among devices in an industrial system, and typical control networks implementing CIP include EtherNet/IP, DeviceNet, ControlNet and similar networks whose specifications are published and whose protocols are used broadly by a number of manufacturers and suppliers.
In industrial control systems, it is often desirable to communicate with different devices in the system to accomplish various purposes, such as monitoring device statuses, monitoring sensors, controlling actuators, and so forth. Such communications may be conveniently achieved using an Internet Protocol (IP) based addressing network (such as an EtherNet/IP network) in which unique IP addresses are assigned to different devices. However, assigning IP addresses to “constrained” devices can be difficult. Constrained devices are devices typically having limited power, computational capability, memory, communication rates or are otherwise resource constrained, and in some instances, may be battery powered. Examples of such constrained devices may include electronic overload relays, pushbuttons, contactors, proximity sensors and other I/O elements.
In the past, constrained devices might not have received IP addresses at all. The constrained nature of such devices often prevents the ability to support Dynamic Host Configuration Protocol (DHCP) or Bootstrap Protocol software, or to support hardware switches for static IP address assignment, and as a result, inhibits IP address assignment via existing addressing methods altogether. Moreover, implementation of traditional DHCP software, even if feasible, may still be undesirable in industrial control systems as DHCP assignments generally inhibit maintaining fixed IP addresses for specific devices, which is often an important function in industrial control systems.
Further complicating the establishment of communication in industrial control systems, devices may also be configured in parts of the system according to different network topologies, such as linear, ring and/or star topologies. Moreover, such devices, including constrained devices, are usually present in large amounts. As a result, assigning IP addresses to each individual device, such as by using DHCP software or hardware switches where feasible, may be inefficient and/or ineffective due to, for example, the need for increased time to set up the network, difficulty in ensuring IP address uniqueness, and the like. In addition, the possibility of applying changes to the system, including updating hardware or software, replacing devices, and so forth, also complicates maintaining a fault tolerant addressing scheme.
Aside from assigning a unique IP address to each device in an industrial control system, providing to an industrial controller each device's IP address may also be important for enabling accurate communication between the controller and devices in the system. This is typically achieved by manually setting each device's IP address in the controller's device configuration and control program. This process first requires an operator developing the system to manually set the IP addresses of the devices in the controller, and then requires the operator to manually validate the correctness of each of the IP address settings. Moreover, when the same system is being duplicated, such as identical machines being installed in an adjacent working cell, the IP address settings in the controller must be reconfigured for each system, thereby requiring additional start-up costs and delay.
It is therefore desirable to provide an improved industrial control system providing a mechanism for more efficiently allocating IP addresses for devices in the system and for setting the IP addresses of the devices in an industrial controller in the system.